<?php
header("Content-Type:text/html;charset=utf-8");

/**
 * 查询全部数据
 * @param sql sql语句
 */
function all($sql)
{
    // 声明全局变量
    global $conn;

    // 执行SQL语句
    $result = mysqli_query($conn,$sql);

    // 定义空的数组
    $data = [];

    if($result && mysqli_num_rows($result) > 0)
    {
        $data = mysqli_fetch_all($result,MYSQLI_ASSOC);
    }

    // 返回查询的数据
    return $data;
}


/**
 * 查询单条数据
 * @param sql SQL语句
 */
function find($sql)
{
    global $conn;

    $result = mysqli_query($conn,$sql);

    $data = [];

    if($result && mysqli_num_rows($result) > 0)
    {
        $data = mysqli_fetch_assoc($result);
    }

    return $data;
}

/**
 * 新增数据
 * @param table 表名
 * @param data  要新增数据
 */
function insert($table,$data)
{
    global $conn;
    global $pre;

    // 拼接表名
    $table = $pre.$table;

    // 获取数组的键值
    $keys = array_keys($data);

    // 键值的数组转换字符串
    $fields = "`".implode('`,`',$keys)."`";

    // 数组转换字符串
    $values = "'".implode("','",$data)."'";

    // 组成sql语句
    $sql = "INSERT INTO `$table`($fields)VALUES($values)";

    // 执行sql语句
    $result = mysqli_query($conn,$sql);

    if(!$result)
    {
        echo '执行sql语句失败：'.$sql.'<br>';
        echo mysqli_error($conn);
        exit;
    }

    // 返回新增的id
    return mysqli_insert_id($conn);
}

/**
 * 更新数据
 * @param table 表名
 * @param data 要更新数据
 * @param WHERE 条件
 */
function update($table,$data,$where = 1)
{
    global $conn;
    global $pre;

    // 拼接表名
    $table = $pre.$table;

    // 定义空的字符
    $str = '';

    // 遍历循环 封装
    foreach ($data as $key => $value) {
        $str .= "`$key` = '$value',";
    }

    // 多余的符号去掉
    $str = trim($str,',');

    // 组装sql语句
    $sql = "UPDATE `$table` SET $str WHERE $where";

    $result = mysqli_query($conn,$sql);

    if(!$result)
    {
        echo '执行sql语句失败：'.$sql.'<br>';
        echo mysqli_error($conn);
        exit;
    }

    return mysqli_affected_rows($conn);

}

/**
 * 删除数据
 * @param table 表名
 * @param where 条件
 */
function del($table,$where = 1)
{
    global $conn;
    global $pre;

    // 拼接表名
    $table = $pre.$table;

    // DELETE FROM `表名` where id = 4;

    $sql = "DELETE FROM `$table` WHERE $where";

    $result = mysqli_query($conn,$sql);

    if(!$result)
    {
        echo '执行sql语句失败：'.$sql.'<br>';
        echo mysqli_error($conn);
        exit;
    }

    return mysqli_affected_rows($conn);
}